{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def creatDataSet():\n",
    "    dataSet = [[1,1,'yes'],\n",
    "              [1,1,'yes'],\n",
    "              [1,0,'no'],\n",
    "              [0,1,'no'],\n",
    "              [0,1,'no']]\n",
    "    labels = ['no surfacing','flippers']\n",
    "    return dataSet ,labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']],\n",
       " ['no surfacing', 'flippers'])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myData , labels = creatDataSet()\n",
    "myData , labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def calcShannoEnt(dataSet):\n",
    "    numEntries = len(dataSet)\n",
    "    labelCounts = {}\n",
    "    for featVec in dataSet:\n",
    "        currentLabel  = featVec[-1]\n",
    "        if currentLabel not in labelCounts.keys():\n",
    "            labelCounts[currentLabel] = 0\n",
    "        labelCounts[currentLabel] += 1\n",
    "    shannonEnt = 0.0\n",
    "    for key in labelCounts:\n",
    "        prob = float(labelCounts[key]) / numEntries\n",
    "        shannonEnt -= prob * np.log2(prob)\n",
    "    return shannonEnt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9709505944546686"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "calcShannoEnt(myData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3709505944546687"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myData[0][-1] = 'mybe'\n",
    "calcShannoEnt(myData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def splitDataSet(dataSet,axis,value):\n",
    "    retDataSet = []\n",
    "    for featVec in dataSet:\n",
    "        if featVec[axis] == value:\n",
    "            reducedFeatVec = featVec[:axis]\n",
    "            reducedFeatVec.extend(featVec[axis+1:])\n",
    "            retDataSet.append(reducedFeatVec)\n",
    "    return retDataSet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[[1, 'mybe'], [1, 'yes'], [0, 'no']]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "splitDataSet(myData,0,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def chooseBestFeatureToSplit(dataSet):\n",
    "    numFeatures = len(dataSet[0]) -1\n",
    "    baseEntropy = calcShannoEnt(dataSet)\n",
    "    bestInforGain = 0.0\n",
    "    bestFeature = -1\n",
    "    newEntropy = 0.0\n",
    "    for i in range(numFeatures):\n",
    "        featList = [example[i] for example in dataSet]\n",
    "        uniqueVals = set(featList)\n",
    "        for value in uniqueVals :\n",
    "            subDataSet = splitDataSet(dataSet , i ,value)\n",
    "            prob = len(subDataSet) / float(len(dataSet))\n",
    "            newEntropy += prob * calcShannoEnt(subDataSet)\n",
    "        infoGain = baseEntropy - newEntropy\n",
    "        if (infoGain > bestInforGain):\n",
    "            bestInforGain = infoGain\n",
    "            bestFeature = i\n",
    "    return bestFeature"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "chooseBestFeatureToSplit(myData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def majoritycnt(classList):\n",
    "    classCount = {}\n",
    "    for vote in classList:\n",
    "        if vote not in classCount.keys():\n",
    "            classCount[vote] = 0\n",
    "        classCount[vote] +=1\n",
    "    sortedClassCount = sorted(classCount.items() , key=lambda x : x[1] , reverse=True)\n",
    "    return sortedClassCount[0][0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def creatTree(dataSet ,labels):\n",
    "    classList  = [example[-1] for example in dataSet]\n",
    "    if classList.count(classList[0]) == len(classList):\n",
    "        return classList[0]\n",
    "    if len(dataSet[0]) == 1:\n",
    "        return majorityCnt(classList)\n",
    "    bestFeat = chooseBestFeatureToSplit(dataSet)\n",
    "    bestFeatLabel = labels[bestFeat]\n",
    "    myTree = {bestFeatLabel:{}}\n",
    "    del (labels[bestFeat])\n",
    "    featValues = [example[bestFeat] for example in dataSet]\n",
    "    uniqueVals  = set(featValues)\n",
    "    for value in uniqueVals:\n",
    "        subLabels = labels[:]\n",
    "        myTree[bestFeatLabel][value] = creatTree(\n",
    "                            splitDataSet(dataSet,bestFeat,value),\n",
    "                                subLabels)\n",
    "    return myTree\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "myData  , labels = creatDataSet()\n",
    "myTree = creatTree(myData,labels)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}"
      ]
     },
     "execution_count": 167,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myTree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "decisionNode = dict(boxstyle=\"sawtooth\", fc=\"0.8\")\n",
    "leafNode = dict(boxstyle=\"round4\", fc=\"0.8\")\n",
    "arrow_args = dict(arrowstyle=\"<-\")\n",
    "\n",
    "def plotNode(nodeTxt, centerPt, parentPt, nodeType):\n",
    "    createPlot.ax1.annotate(nodeTxt, xy=parentPt,  xycoords='axes fraction',\n",
    "             xytext=centerPt, textcoords='axes fraction',\n",
    "             va=\"center\", ha=\"center\", bbox=nodeType, arrowprops=arrow_args )\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def createPlot():\n",
    "    fig = plt.figure(1, facecolor='white')\n",
    "    fig.clf()\n",
    "    createPlot.ax1 = plt.subplot(111, frameon=False) #ticks for demo puropses \n",
    "    plotNode('a decision node', (0.5, 0.1), (0.1, 0.5), decisionNode)\n",
    "    plotNode('a leaf node', (0.8, 0.1), (0.3, 0.8), leafNode)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c0de7b9240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "createPlot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def getNumLeafs(myTree):\n",
    "    numLeafs = 0\n",
    "    firstStr = list(myTree.keys())[0]\n",
    "    secondDict = myTree[firstStr]\n",
    "    for key in secondDict.keys():\n",
    "        if type(secondDict[key]).__name__=='dict':\n",
    "            numLeafs += getNumLeafs(secondDict[key])\n",
    "        else:   numLeafs +=1\n",
    "    return numLeafs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def getTreeDepth(myTree):\n",
    "    maxDepth = 0\n",
    "    firstStr = list(myTree.keys())[0]\n",
    "    secondDict = myTree[firstStr]\n",
    "    for key in secondDict.keys():\n",
    "        if type(secondDict[key]).__name__ == 'dict':\n",
    "            thisDepth =  1 + getTreeDepth(secondDict[key])\n",
    "        else:\n",
    "            thisDepth = 1\n",
    "        if thisDepth > maxDepth :\n",
    "            maxDepth = thisDepth\n",
    "    return maxDepth"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def retrieveTree(i):\n",
    "    listOfTrees =[{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}},\n",
    "                  {'no surfacing': {0: 'no', 1: {'flippers': {0: {'head': {0: 'no', 1: 'yes'}}, 1: 'no'}}}}\n",
    "                  ]\n",
    "    return listOfTrees[i]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a = retrieveTree(0)\n",
    "a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 175,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "getNumLeafs(myTree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plotMidText(cntrPt,parenPt,txtString):\n",
    "    xMid = (parenPt[0] - cntrPt[0]) / 2.0 + cntrPt[0]\n",
    "    yMid = (parenPt[1] - cntrPt[1]) / 2.0 + cntrPt[1]\n",
    "    createPlot.ax1.text(xMid,yMid,txtString)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plotTree(myTree, parentPt, nodeTxt):#if the first key tells you what feat was split on\n",
    "    numLeafs = getNumLeafs(myTree)  #this determines the x width of this tree\n",
    "    depth = getTreeDepth(myTree)\n",
    "    firstStr = list(myTree.keys())[0]     #the text label for this node should be this\n",
    "    cntrPt = (plotTree.xOff + (1.0 + float(numLeafs))/2.0/plotTree.totalW, plotTree.yOff)\n",
    "    plotMidText(cntrPt, parentPt, nodeTxt)\n",
    "    plotNode(firstStr, cntrPt, parentPt, decisionNode)\n",
    "    secondDict = myTree[firstStr]\n",
    "    plotTree.yOff = plotTree.yOff - 1.0/plotTree.totalD\n",
    "    for key in secondDict.keys():\n",
    "        if type(secondDict[key]).__name__=='dict':#test to see if the nodes are dictonaires, if not they are leaf nodes   \n",
    "            plotTree(secondDict[key],cntrPt,str(key))        #recursion\n",
    "        else:   #it's a leaf node print the leaf node\n",
    "            plotTree.xOff = plotTree.xOff + 1.0/plotTree.totalW\n",
    "            plotNode(secondDict[key], (plotTree.xOff, plotTree.yOff), cntrPt, leafNode)\n",
    "            plotMidText((plotTree.xOff, plotTree.yOff), cntrPt, str(key))\n",
    "    plotTree.yOff = plotTree.yOff + 1.0/plotTree.totalD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def createPlot(inTree):\n",
    "    fig = plt.figure(1, facecolor='white')\n",
    "    fig.clf()\n",
    "    axprops = dict(xticks=[], yticks=[])\n",
    "    createPlot.ax1 = plt.subplot(111, frameon=False, **axprops)    #no ticks\n",
    "    #createPlot.ax1 = plt.subplot(111, frameon=False) #ticks for demo puropses \n",
    "    plotTree.totalW = float(getNumLeafs(inTree))\n",
    "    plotTree.totalD = float(getTreeDepth(inTree))\n",
    "    plotTree.xOff = -0.5/plotTree.totalW; plotTree.yOff = 1.0;\n",
    "    plotTree(inTree, (0.5,1.0), '')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWQAAADxCAYAAAD8x81kAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcTYn/x/FXWrUghaSRJSX7FmIMWccyDWNfv/Zt7Hxt\nI0UGw2CMNQxjyzb2NdLYJ6Jsac9SyBJJqajO74/5/nqMGTNDqnPrfp6Ph8eD273nvO+99e7j3LPo\nKIqiIIQQQnWF1A4ghBDid1LIQgihIaSQxUfZtWsXhoaGrFu3js2bN2NoaMiWLVtYu3YthoaG7N69\nm6VLl1K4cGGOHDnC/PnzMTExwc/PDzc3N8zMzDh//jwTJ06kWLFiBAQEMGLECCwtLbl69Sr9+/fH\nysqKmzdv0r17d8qUKUNoaChffvkl5cqVIyIigjZt2mBvb09UVBRNmzalatWqREdH4+zsTJ06dbh9\n+zZ16tShYcOGREdHU61aNZo2bUpUVBT29va0adOGiIgIypcvz5dffkloaChlypShR48eBAcHY2Vl\nRf/+/bl69SqWlpaMGDGCgIAAihUrxsSJEzl//jxmZmbMmDED2QIoPooiRDZdvHhRMTc3V7777jvF\nyspKKVmypPLdd98pJUqUUKysrJT58+crFhYWio2NjTJ//nylWLFiiq2trTJ37lylSJEiip2dnTJn\nzhzFxMREcXR0VDw8PJTChQsr1atXV2bMmKEYGRkp9erVU6ZOnaoYGBgozs7OyqRJkxR9fX2ladOm\nytixYxU9PT2ldevWyvDhwxU9PT2lQ4cOyoABAxQ9PT2lc+fOSu/evRU9PT2ld+/eSufOnRU9PT1l\nwIABSocOHRQ9PT1l+PDhSuvWrRU9PT1l7NixStOmTRV9fX1l0qRJirOzs2JoaKhMnTpVqVu3rmJk\nZKTMmDFDqVGjhlK4cGHFw8NDcXR0VExMTJQ5c+YoFSpUULy8vNR+W0Q+pqMo8itdZM+dO3do2LAh\nEyZMoGbNmiiKQokSJXj8+DGFChXC0tKSuLg4DAwMKF68OA8fPqRw4cIUK1aM+/fvY2pqStGiRYmN\njaVo0aKYmZlx7949LCwsMDEx4c6dO5QqVYrChQsTHR2NtbU1RkZGREZGUrZsWQwMDLImWz09PcLC\nwrCzs6NQoUKEhYVhb2+Pjo4OYWFhODg4oCgK4eHhODg4kJmZSWRkJA4ODqSnp3P79m0qVarE69ev\nuXfvHnZ2dqSmpvLgwQMqVKhASkoKjx49oly5ciQnJxMfH0/ZsmVJSkoiISGBlJQURo8ezY4dO2je\nvLnab43Ip6SQxUf5+eefmT59OgcPHlQ7iqqmTJmCg4MDK1asUDuKyMdkG7LItqioKCZPnsx///tf\ntaMAEBQURLdu3ejVqxepqakf9NhffvmFQ4cOZXvdw4cPZ+fOnfj4+GR7GULoqR1A5F/Pnj0jIyOD\nTz75RO0oZGRkcPToUfr370+7du0++PFdunT5qPVbWFhgbm7O3bt3P2o5QrvJJgvxUX788Ud+/PFH\nduzYwYMHDxgzZgy1atXi+vXrlChRgkWLFmFkZERYWBjz5s0jNTUVGxsbZs6cSZEiRd5alq+vL2vW\nrEFXVxdTU1PWrl3LwYMHuXXrFlOmTAFg3Lhx9OnTh3r16tGkSRO++uorLl26RIsWLfD29sbU1JQa\nNWowffp0Jk6cSGJiIunp6YwYMYJmzZoBcOjQIbZs2YKOjg52dnZ4enri5eWFsbExffv2ZejQoVSr\nVo3Lly+TlJSEm5sbtWvXJjU1FQ8PD6KiorC1teXJkydMmTKFKlWq4OHhQfHixfn555/R0dHJ67dB\nFBAyIYtsS0xMZMOGDbi4uGTdFhMTw7fffsuMGTOYOnUqfn5+tGvXDnd3d/773/9St25dVq9ezdq1\na5k4ceJby1u7di3Lly+nZMmSvHz58l/Xn5KSQrVq1Rg/fjwAsbGxfPrpp7Rs2ZL09HQWLlyIqakp\nCQkJ9O/fn6ZNmxIdHc369etZv349xYoV48WLF+9cdkZGBps2beLcuXOsXbuWlStXsmvXLszMzNi1\naxeRkZH07t076/6fffYZixYtIjIykkqVKmXn5RRCtiGL7Dt37hx3796lT58+WbdZW1vj4OAAQOXK\nlXnw4AFJSUm8fPmSunXrAtChQwcCAwP/sryaNWvi4eHB3r17ycjI+Nf16+rq/uMeDStWrKBHjx6M\nHDmSJ0+eEB8fT0BAAC1atKBYsWIAFC1a9J2P/f9fMo6Ojjx48ACAq1ev0qZNGwDs7Oyws7PLun+z\nZs2wtrbG29v7X3ML8XekkEW2tW3blq5duzJjxoys2/T19bP+rqur+17F+v+mT5/OyJEjefToEX37\n9iUhIQFdXd23DrZ4/fr1W+tasGABycnJPH36lJSUlKyvHT16lISEBLZs2YK3tzfFixd/67H/xsDA\n4IOew5o1azA2Nmby5MnvvQ4h/kwKWXyUtLQ09PT+ecuXqakpRYoUISgoCIDDhw9Tp06dv9wvNjaW\natWqMXz4cMzNzXn06BHW1taEh4eTmZlJXFwcwcHBACQlJfH69WvS09MxNjbm6tWrBAUFZZV3UlIS\n5ubm6OnpcfnyZR4+fAiAk5MTJ0+eJCEhAeBvN1m8S82aNTlx4gQA0dHRREZGZn1NV1eXN2/efNAv\nICH+TApZZNvhw4c5cOAAs2fP/tf7enh4sHTpUnr06EF4eDhDhgz5y32WLl1K9+7d6datGzVq1MDe\n3p6aNWtibW1N165d+f7773FwcODVq1eMGjUKHR0dvvnmG3R0dHBxcSEtLY2IiAjg9+k9JCSE7t27\nc/jwYcqVKwdAxYoVGThwIEOHDqVnz54sWbLkvZ9v165def78OV27dmXVqlVUrFgRU1NTAAYPHpy1\n3VqI7JK9LES2JScn4+LigqOjI2PGjMmTdSYkJDBq1Chq167NhAkT3tqjwcfHB29v71zb0yEjI4P0\n9HQMDQ2JjY1l5MiR7N69G319fXx8fFi+fDnnz5+nfPnyOb5uoR1kQhbZZmJiQo8ePfD398+T9T17\n9owRI0ZQv379v5QxQKtWrUhNTeXs2bO5sv7U1FQGDx5Mz549mTRpElOmTMnaZn7x4kWaNWuWNYkL\nkR26Hh4eHmqHEPnTxYsXGTZsGMuWLePGjRvcvn2bcuXKcerUKe7fv0/ZsmXx9fXlyZMn2NjYcOzY\nMV68eIG1tTWHDh0iJSWFUqVKsX//fjIyMihRogS7d+9GV1eX4sWLs3PnTgoXLkzRokVZv349Cxcu\npHnz5hQtWhRLS0uMjIzYunUrVlZW6OnpsXXrVurXr8+GDRtITEykfPnyvHnzBm9vb+zs7EhJSWHb\ntm04ODiQmJjIzp07qVy5MvHx8ezevZsqVaoQFxfHgQMHqFKlCjExMRw9epQqVapw+/ZtTp06xTff\nfEONGjWwtLSkTZs23Lp1iwsXLtC7d++sfaidnJzUfmtEPiWbLES23b17l0aNGtGgQQPOnz9PoUKF\naNCgARcvXiQzMxNnZ2cuX75MWloajRo14urVqyQnJ+Ps7ExwcDCJiYk0bNiQsLAwnj9/jpOTE9HR\n0Tx79ow6deoQExNDfHw8lSpVIiAgAAMDA+rWrcvTp0958eIFtra2vHjxgpcvX2JlZUVycjIpKSk8\nfPgQCwsLTE1N0dfXJzMzk0KFCvHmzRt0dXUxNDTkxYsXGBkZYWJiQlxcHGZmZhQtWpS7d+9mFX5Y\nWBjFixfHysqKGzduYGlpySeffEJgYCDFixenQoUKBAQEYG5uTuXKlfntt9/YvXs3TZs2VfutEfmU\nbLIQ2WZra8upU6d48+YNJ06cwM/Pj4yMDH799VeOHz9ORkYGp0+f5vDhwwCcPXuWffv2oaenx/nz\n59mxYwdGRkZcuHCBjRs3YmZmhr+/P6tXr8bCwgJ/f3+++eYbrl+/jpubG0uXLqVixYpcvnyZadOm\nUa1aNQIDAxk3bhz169cnKCiIwYMH07p1a8zMzOjatSvt27fn2rVrtG/fnu7du3P16lWaNm3KoEGD\nCAoKon79+owbN44rV65QrVo1pk2bxuXLl6lYsSJz584lICAAGxsbfvjhB/z9/bGwsGD16tX4+/tj\nZmbGxo0buXDhAoaGhmzbtk3KWHwUmZCFxoqOjqZFixaMHTuWcePGvffjFEWhUaNGjB49ml69euVi\nQiFylhSy0EgRERG0aNGCadOmMWLEiA9+/MmTJxkxYgS3bt361/2khdAUsslCaJyQkBBcXFxwd3fP\nVhkDNG/eHGtrazZv3pzD6YTIPTIhC41y8+ZNWrduzfz58+nXr99HLevs2bP069ePsLCwrEOhhdBk\nMiELjREUFETLli1ZvHjxR5cxQJMmTbC3t2f9+vU5kE6I3CcTstAIAQEBdOjQgZUrV9K5c+ccW+6l\nS5fo3LkzERERGBkZ5dhyhcgNMiEL1f3222+0b9+edevW5WgZA9SvX5/atWvj5eWVo8sVIjfIhCxU\ndebMGbp06cKmTZv4/PPPc2UdV69epW3btkRFRWFsbJwr6xAiJ8iELFRz8uRJOnfuzLZt23KtjAFq\n1arFp59+KleEFhpPJmShCh8fH/r27cuuXbvy5Oi24OBgXFxciIqKwszMLNfXJ0R2yIQs8tzBgwfp\n27cv+/bty7NDjatWrUrr1q1ZunRpnqxPiOyQCVnkqT179jBixAgOHjxI/fr183TdERERODs7ExER\ngbm5eZ6uW4j3IROyyDM7duxg5MiRHD16NM/LGKBSpUq4urqyePHiPF+3EO9DJmSRJzZv3syUKVPw\n8fGhevXqquW4c+cOdevWJSwsDEtLS9VyCPEuMiGLXLd+/XqmTZuGr6+vqmUMUK5cObp168aCBQtU\nzSHEu8iELHLV6tWrmTt3Lr6+vtjb26sdB/j96tY1a9YkODgYKysrteMIkUUKWeSaH3/8kcWLF+Pn\n50eFChXUjvOWcePGoSiK7HUhNIoUssgVCxcuZPXq1fj5+WFra6t2nL+Ii4ujSpUqXL9+HRsbG7Xj\nCAFIIYtcMGfOHDZv3szJkyc1uuymTJlCYmIiq1atUjuKEIAUsshBiqLg7u7O7t278fX1pXTp0mpH\n+kdPnz7FwcGBy5cvU758ebXjCCGFLHKGoihMmzaNI0eO4OvrS8mSJdWO9F5mzpxJbGysnDNZaAQp\nZPHRFEVhwoQJnD59mhMnTmBhYaF2pPeWkJBApUqVOH/+vMbsBSK0l+yHLD5KZmYmo0aN4sKFC5w8\neTJflTFAsWLFGDt2LLNmzVI7ihAyIYvsy8zMZNiwYdy6dYujR49SpEgRtSNly8uXL7Gzs8PPz4+q\nVauqHUdoMSlkkS0ZGRkMHDiQu3fvcujQIUxNTdWO9FEWLlzIxYsX+eWXX9SOIrSYFLL4YOnp6fTr\n148nT56wf//+AnEVjlevXmFnZ8fhw4epXbu22nGElpJtyOKDvH79mh49evD8+XMOHDhQIMoYwNjY\nmKlTpzJz5ky1owgtJhOyeG9paWl07doVHR0ddu7ciaGhodqRclRqaiqVKlXil19+oUGDBmrHEVpI\nJmTxXlJSUujYsSMGBgbs2rWrwJUxgJGRETNmzJApWahGCln8q1evXuHq6oq5uTnbt2/HwMBA7Ui5\nZsCAAYSHh3P27Fm1owgtJIUs/lFSUhLt2rXD2tqazZs3o6enp3akXGVgYIC7uzszZsxAtuaJvCaF\nLP7WixcvaNOmDZUqVWLDhg3o6uqqHSlP9OnTh7i4OE6ePKl2FKFlpJDFOz1//pxWrVpRq1YtvLy8\nKFRIe75V9PT0cHd3x83NTaZkkae056dMvLf4+HhatGhB48aNWb58uVaV8f/r3r07L1++5OjRo2pH\nEVpE+37SxD96/PgxLi4utG7dmsWLF6Ojo6N2JFXo6uoya9YsmZJFnpJCFlkePnxIs2bN6NSpE/Pm\nzdPaMv5/nTp1QlEU9u3bp3YUoSXkwBAB/H7hz+bNm/Of//yHb775Ru04GuPQoUNMmzaNa9euaeWm\nG5G35DtMcPfuXZo2bcrQoUOljP+kffv2mJiYsHPnTrWjCC0gE7KWi46Opnnz5kyYMIExY8aoHUcj\nnThxglGjRhEcHFzg98MW6pIJWcscO3YMBwcH7OzsmDRpEs2aNWPq1KlSxv+gZcuWlCpViq1bt751\n+8CBAylZsiTVqlVTKZkoaGRC1iIZGRnY29tz4sQJEhMTcXJyyjoqTfyzM2fO0L9/f8LCwtDX18+6\nzdTUlH79+nHz5k2VE4qCQCZkLXLp0iXs7OxITk6mXbt2dOrUSWuOvvtYn332GRUrVmTDhg1v3Va8\neHEVU4mCRgpZi9y/f5/ChQvTqlUrlixZwhdffMH9+/fVjpVveHp6MmfOHNLS0tSOIgooKWQtEhER\ngY+PDytXrqR79+5qx8l3GjZsSI0aNVi7dq3aUUQBJYWsJS5cuMCCBQtwdHTkq6++An7f97hMmTIq\nJ8tfZs+ezdy5c3n16pXaUUQBJIWsBU6fPk3Hjh3ZunUrCQkJ3L59m9evX7N9+3ZcXV3Vjpev1KlT\nB2dnZ1atWqV2FFEQKaJA8/X1VSwtLZWTJ08qiqIohw8fVipVqqRUqFBBmTNnjsrp8qcbN24oJUuW\nVDp37qxYWVkpenp6SpkyZZR169apHU3kc7LbWwF27Ngx+vXrx+7du2nSpInacQqUnj17Ur16daZP\nn652FFGASCEXUAcPHmTQoEHs378fZ2dnteMUOGFhYXz66adERERQrFgxteOIAkK2IRdAu3fvZvDg\nwRw+fFjKOJc4ODjQvn17lixZonYUUYDIhFzAbN++nfHjx3P06FFq1aqldpwCLTo6mvr16xMWFoaF\nhYXacUQBIBNyAbJp0yYmTJjAiRMnpIzzQIUKFejcuTMLFy5UO4ooIGRCLiB++ukn3N3d8fX1pXLl\nymrH0RoxMTHUrFmTkJAQSpUqpXYckc9JIRcAK1euZP78+Zw8eZJKlSqpHUfrjBkzBj09PRYvXqx2\nFJHPSSHncz/88ANLly7Fz8+P8uXLqx1HKz18+JCqVaty48YNOfJRfBQp5HxswYIFrFmzBj8/P8qW\nLat2HK02adIkUlJSWLFihdpRRD4mhZxPeXp6smXLFvz8/GQq0wBPnjyhcuXKBAYGYmtrq3YckU9J\nIecziqIwc+ZM9uzZw8mTJ7GyslI7kvifb775hkePHrFu3Tq1o4h8Sgo5H1EUhSlTpuDj44Ovry8l\nSpRQO5L4g+fPn1OpUiX8/f2xs7NTO47Ih6SQ8wlFURg/fjxnz57l+PHjciCChpo9ezYRERFs3rxZ\n7SgiH5JCzgcyMzMZNWoUgYGBHDt2TM6doMESExOxs7Pj9OnTODo6qh1H5DNSyBouIyODYcOGERoa\nypEjRyhSpIjakcS/+O677wgMDGTHjh1qRxH5jBSyBktPT2fgwIHExMRw8OBBTE1N1Y4k3kNycjIV\nK1bEx8eHmjVrqh1H5CNSyBrqzZs39OvXj/j4ePbt24exsbHakcQH+OGHHzh16hT79u1TO4rIR6SQ\nNdDr16/p2bMnqamp7N69GyMjI7UjiQ+UmpqKnZ0de/fuxcnJSe04Ip+Qs71pmLS0NLp06UJGRgZ7\n9uyRMs6njIyMmD59OjNnzlQ7ishHpJA1SEpKCl9++SVGRkbs2rULQ0NDtSOJjzBo0CBCQkI4f/68\n2lFEPiGFrCGSk5Pp0KEDFhYWeHt7o6+vr3Yk8ZEMDQ1xc3PDzc1N7Sgin5BC1gAvX76kXbt2lC1b\nlk2bNqGnp6d2JJFD+vXrR0xMDH5+fmpHEfmAFLLKXrx4QZs2bahcuTI//fQTurq6akcSOUhfXx93\nd3fc3NyQz8/Fv5FCVtHz589p1aoVdevWZfXq1RQqJG9HQdSzZ0+eP3+Oj4+P2lGEhpMGUMnTp09p\n3rw5TZo04ccff0RHR0ftSCKX6OrqMmvWLJmSxb+SQlbB48ePcXFxoW3btnz//fdSxlqgc+fOvH79\nmgMHDqgdRWgwKeQ89vDhQ5o1a0aXLl349ttvpYy1RKFChZg9ezYzZ84kMzNT7ThCQ0kh56HY2Fia\nNm1K3759cXd3lzLWMq6urhgYGPDLL7+oHUVoKDl0Oo/cuXOHFi1aMHLkSCZOnKh2HKGSY8eOMWHC\nBG7cuCF71Ii/kAk5D0RFRdGsWTPGjRsnZazl2rRpQ/Hixdm2bZvaUYQGkgk5l4WFhdGyZUvc3NwY\nOnSo2nGEBvj1118ZMmQIISEhckSmeItMyLno1q1bNG/enNmzZ0sZiywuLi5ZR2UK8UcyIeeS69ev\n8/nnn7Nw4UJ69+6tdhyhYc6fP0/v3r0JCwuTk0iJLDIh54LAwEBat27N0qVLpYzFOzVu3BhHR0d+\n+ukntaMIDSITcg67dOkSX3zxBV5eXnTs2FHtOEKDXb58mY4dOxIREUHhwoXVjiM0gEzIOej8+fN0\n6NCB9evXSxmLf1WvXj3q1avH6tWr1Y4iNIRMyDnk1KlTdOvWjS1bttC6dWu144h84vr167Ru3Zqo\nqChMTEzUjiNUJoWcA3x9fenVqxc7duzAxcVF7Tgin+nevTt16tTBycmJQ4cOsXjxYrUjCZXIJots\n+OPvsKNHj9KrVy/27NkjZSw+WGJiIh4eHixatIiYmBhiYmLUjiRUJBPyB0pPT8fR0ZFr167h6+vL\nkCFD2L9/Pw0bNlQ7msiHWrduTZkyZUhJSQF+v+L4nj17VE4l1CIT8gfy8/PD3NycI0eOMHToUI4c\nOSJlLLJtz549KIpCQEAABw4cyCpmoZ1kQv5AAwYMID09HV9fXw4fPoyNjQ0lS5ZUO5bI57Zs2cLA\ngQMpV64c4eHhascRKpFC/gCpqakUL14cAwMDWrVqxZkzZ2jcuLH8F1PkiIsXL3Lp0iVGjx6tdhSh\nEinkD7Bu3TqGDBlC7dq16d27N506daJChQpqxxJCFBCyDfkD9OvXjzt37hAYGMjEiROljMU7+fv7\n8+LFCwCCgoJ49OgR8PvJpu7duwdAdHR01qaJBw8ecP36dQDi4+MJCAgAIDk5mbNnzwLw5s0b/Pz8\nyMzMRFEU/Pz8ePPmDQDnzp0jKSkJgICAAOLj4wG4ceMG9+/fByAiIoKoqCgA7t27R0hISO6+CCJ7\nFC2Rnp6ueHt7K+PHj1dcXV2VqlWrKiYmJgrwlz8mJiZK1apVFVdXV2X8+PGKt7e3kp6ervZTEPnA\nsmXLFBMTE6V27drK8uXLlSJFiigVKlRQNmzYoJibmyulSpVSNm/erFhaWioWFhbKxo0bFRsbG6Vo\n0aLKmjVrFEdHR8XMzExZtGiR0qhRI8XExESZPn264urqqpiYmCiDBg1ShgwZopiYmCgdOnRQ3Nzc\nFBMTE8XZ2VlZvHixYmZmplSuXFlZu3atUrRoUaVMmTLKpk2bFAsLC8XS0lLZvHmzYmVlpZibmysn\nT55U++USf6IVmywURaF9+/bExcXx6aefUqZMGWxsbLCxscHU1PQv909KSiI2NpbY2Fju37/PuXPn\nKF26NIcOHZLLLom/defOHSpWrIi3tzdHjx7l5MmTLFq0iEuXLrFx40bmz59PXFwcixYt4ptvvqFw\n4cK4ubkxYsQIHB0dmTRpEl9++SVt27Zl3LhxODk5MWjQICZOnIi1tTVTpkxhxowZKIrCt99+y4IF\nC4iNjWXx4sVs2LCBixcvsmTJEo4fP86ePXtYuHAh4eHhrFy5ktmzZ/P69WvmzJnD+PHjURSFpUuX\n8vTpU7VfNvEHWlHIly5donv37mzfvh09Pb0Pfnx6ejrdu3dn586d1K9fPxcSioJAURQGDBhAZGQk\nixYtytb3Wl54/vw5gwcPZtKkSYwaNUrtOOIPtGIb8o0bN6hevXq2f0D09PSoXr06N2/ezOFkoiDR\n0dGhe/fuXL9+ndevX6sd52/FxcWRkJBA27Zt1Y4i/kQrCjk4OBhbW9uPWoatrS3BwcE5lEgURHFx\ncXTv3p3FixdjbGwMwPbt2+nSpQtt27blu+++A+CXX37h0KFDquV0dHRkyJAhUsgaSCsKOSQkhHLl\nyn3UMsqXL8+tW7dyJpAokMzMzKhYsSIXL17Mum3Xrl2sWLGCkSNHZt3WpUsXOnTokGs5FEUhMzPz\nb7+enp7OpUuXcHJyyrUMIns0cyNXDktISKBYsWJZ/37w4AFjxoyhVq1aXL9+nRIlSrBo0SLu3r3L\nvHnzSE1NxcbGhpkzZ1KkSBEAihUrRkJCglpPQeQDJiYmrF27lvr169O7d2+WLVvG/fv3GTNmDK6u\nrln38/LywtjYmL59+zJ06FDs7e0JDAwkPT2dmTNnUq1aNby8vLI+WE5ISKBfv3506tQJgE2bNuHr\n68vr169xcXFh2LBhPHjwgFGjRlGtWjVCQ0NZunQpXl5e3Lp1Cx0dHVxdXbOuXhMUFERgYCAHDhxQ\n5XUSf08rJuR3iYmJoWvXruzcuRMzMzP8/Pxwd3dn9OjRbN++HTs7O9auXat2TJGPJCYm0qNHDyZO\nnIiZmRnTp0+nRIkSeHl5Zf1if5fU1FS8vb2ZOnUqs2fPzro9MjKSVatWsWHDBtatW8eTJ0/w9/cn\nJiaGjRs34u3tTUhICIGBgcDb39MJCQk8fvyYnTt3smPHjrd+IdStWxcXFxd69eqVey+GyBatLWRr\na2scHBwAqFy5MrGxsbx8+ZK6desC0KFDh6xvdCHeR1paGi9evMDa2vqDHtemTRsA6tSpQ3JyMi9f\nvgSgadOmGBkZUaxYMerWrUtwcDD+/v74+/vTu3dv+vTpw507d7IONildujTVq1cHoEyZMty/f58F\nCxZw4cKFt05+X6hQIcqUKcPDhw9z4mmLHKQVmyzeRV9fP+vvurq6WT8EQmRXiRIl2L17N61bt8bH\nx+ed+7i/y5/3bf//f+vo6ODv74+pqSkPHz7k8ePHKIpC//796dy581uPefDgAUZGRln/LlKkCNu2\nbeO3335j9+7dnDhxAnd3d+D3q5Rs3bqVsLCwj3m6IhdoxYRsYmJCcnLyP97H1NSUIkWKEBQUBMDh\nw4epU6f3sM34AAAW50lEQVRO1teTkpLkEjviH6Wnp7Nw4UKaN2+etZfF+zh+/DgAV69exdTUNKvI\nf/31Vzw9PUlMTCQyMpJTp07h7OzMgQMHePXqFQCPHz/m2bNnf1lmQkICmZmZtGjRghEjRrxVvhUq\nVMDGxoZVq1Z9zNMVuUArJuTKlStz584dGjdu/I/38/DwyPpQr0yZMlkTBfx+FJajo2NuRxX52P37\n9/Hx8WHr1q0UKvT+s46hoSG9evXK+lDv/xkYGPDq1SsWLlzIyJEj+fnnnzE2Nubzzz9nwIABABgb\nG+Pp6fmX9T1+/JhZs2ZlXd3m66+/zvqaqalp1oeOf9xmLdSnFUfqrVy5kpMnTzJ9+vRsL2Pu3Lm0\nbNmSESNG5GAyUdCsWbMGT09Ptm/f/tYmhL8zdOhQxo0bR5UqVd66fcWKFezcuZPVq1dnDQJ79uzB\n19eXlStXflTGO3fuMHToUA4ePEijRo0+alkiZ2nFJosqVaoQGhpKdn/3KIpCaGjoX35ohPizJ0+e\nYGxs/EET8rvcunULKyurt/5X5urqyv3797ly5cpHLVtfXx9dXV3ZjVMDaUUhf/rpp+jp6eHp6cnp\n06eJjIz810vlpKSkEBkZyenTp5k9ezZ6enr/uslDaLc7d+7g5ubG3LlzOXr0KOPHjyc+Pp4zZ84w\nYsQIYmNjuXbtGkOHDiU0NJTo6GgKFSrEy5cvefToEWPGjMHHx4dHjx4RFBREkyZNSE1NxcPDAy8v\nLwBsbGz45ptvePPmDV5eXri7u5OamsrOnTv573//y4sXLzhx4gSjR48mLi6OgIAAhg0bRlRUFKGh\noQwbNownT54wduxY+vbtq/IrJv5MKzZZwO8fcixevJiAgACioqKIiYnBzMwMMzOzv9w3MTGRpKQk\nypYtS4UKFXBycmLChAlvHVwixJ8pisKoUaM4ePAgmZmZdOrUib1795KWlsaAAQPYvHkzb968YejQ\noaxZs4ZChQoxaNAg1q5di6GhId27d8fb25vU1FQsLCyyjrirV68eUVFRJCQkYGtrS0BAAGZmZlhZ\nWWFvb8+lS5fQ0dGhVatWHDt2jLS0NPr06cO2bdtIS0tj6NCh/PTTTyiKwpAhQ/Dy8kJfX59vv/2W\nQYMGqf2yiT/K27N9ao6MjAwlJiZGCQkJ+cufmJgYJSMjQ+2IIh/KzMxUNmzYoERHRyuKoijbt29X\nrl+/riiKohw6dEi5cOGCoiiKcvr0acXHx0dRFEW5cuWKsnv3bkVRFOXy5cuKmZmZEhISosTGxiqr\nV69W0tPTlefPnyvLli1TXr16pWzcuFGxtbVV4uPjlfT0dMXLy0uJiYlRMjMzlU2bNikhISGKoijK\nnj17lMuXLyuKoijHjx9XTp06pSiKovz222/KoUOH8u5FEe9NayZkIfKDWbNmcfv2bX7++ee/vU9m\nZiY1a9Zk3rx5uXpODJH3pJCF0BDPnj3L2gTxb5cH27t3L56enly+fPmjP0AUmkPeSSE0xPfff0/n\nzp3f61qNHTt2REdHh7179+ZBMpFXZEIWQgM8fvwYR0dHrl69yieffPJejzly5AiTJ0/m2rVr6Orq\n5nJCkRdkQhZCA3z33Xf06tXrvcsYoG3btpiZmbFjx45cTCbykkzIQqjswYMHWZcIK1269Ac91tfX\nl5EjR3Lr1i2NvYafeH8yIQuhsrlz5zJgwIAPLmOAFi1aYG1tzZYtW3IhmchrMiELoaK7d+9Sp04d\nQkNDKVGiRLaWcfbsWfr160dYWBgGBgY5nFDkJZmQhVDRnDlzGD58eLbLGKBJkybY29uzYcOGHEwm\n1CATshAqiYqKokGDBoSHh1O8ePGPWtalS5fo3LkzERER73WWOaGZZEIWQiWzZ89mzJgxH13GAPXr\n16dWrVqsWbMmB5IJtciELIQKQkND+eyzz4iMjPzHC6B+iKCgINq3b09kZOQHXbFEaA6ZkIVQgYeH\nBxMnTsyxMgaoXbs2jRo1YsWKFTm2TJG3ZEIWIo9dv36dNm3aEBkZmePXaQwODqZ58+ZERka+89Sy\nQrPJhCxEHnN3d2fy5Mm5ctHcqlWr0rJlS5YuXZrjyxa5TyZkIfLQlStX+PLLL4mIiKBw4cK5so7w\n8HAaNWpEZGSkXFQhn5EJWYg85ObmxvTp03OtjAHs7e1xdXVl8eLFubYOkTtkQhYij1y4cIGePXsS\nHh6OoaFhrq7r9u3b1KtXj7CwMCwtLXN1XSLnyIQsRB5xc3Nj5syZuV7GAOXLl6dr164sXLgw19cl\nco5MyELkgVOnTjF48GBCQkLQ19fPk3XGxsZSo0YNbt26hZWVVZ6sU3wcKWQhcpmiKHz22WcMGzaM\nPn365Om6x44di46ODj/88EOerldkjxSyELnMx8eH8ePHc+PGjTy/skdcXBxVq1bl2rVr2NjY5Om6\nxYeTQhYiFymKQoMGDZg0aRLdunVTJcPkyZN5+fIlq1atUmX94v1JIQuRiw4ePMiMGTMICgpS7erQ\nT58+xcHBgStXrlCuXDlVMoj3I3tZCJFLMjMzcXNzY/bs2aqVMYClpSUjR47E09NTtQzi/UghC5FL\n9uzZg76+Pq6urmpHYcKECezfv5+IiAi1o4h/IJsshMgFGRkZVK9encWLF/P555+rHQf4/eokoaGh\ncv09DSYTshC5YPv27Zibm9OmTRu1o2QZO3Ysx48fJzg4WO0o4m/IhCxEDktPT8fR0ZE1a9bg4uKi\ndpy3LFiwgICAAHbt2qV2FPEOMiELkcM2bdrEJ598onFlDPD1119z7tw5rl69qnYU8Q4yIQuRg16/\nfo29vT1bt26lcePGasd5p6VLl3Ly5EkOHDigdhTxJzIhC5GDfvrpJxwdHTW2jAGGDRtGUFAQly5d\nUjuK+BOZkIXIIampqdjZ2bF3716cnJzUjvOPVq9ezd69e/Hx8VE7ivgDmZCFyCFeXl7Uq1dP48sY\nYODAgYSHh3Pu3Dm1o4g/kAlZiByQnJyMnZ0dPj4+1KhRQ+0472XDhg1s3LiRX3/9FR0dHbXjCGRC\nFiJHrFixgs8++yzflDFA3759efDgAX5+fmpHEf8jE7IQHykxMRE7OztOnz6No6Oj2nE+iLe3N8uX\nL+f8+fMyJWsAmZCF+EhLly6lTZs2+a6MAbp3786LFy84evSo2lEEUshCfJRdu3Yxa9Yszpw5w/z5\n89WO88F0dXWZNWsWM2fO5M//WR44cCAlS5akWrVqKqXTPlLIQmRTRkYGQ4cO5auvviIiIoJt27Zx\n69YttWN9sK+++oqMjAz279//1u39+/fn2LFjKqXSTlLIQmSTj48PSUlJLFy4EAMDA3r06PGXUssP\nChUqxOzZs3FzcyMzMzPr9s8++4zixYurmEz7SCELkU2rV6+mUqVK2NraAmBjY8P9+/dVTpU9HTp0\nwNjYWE46pDIpZCGyIS4ujl9//ZWaNWuqHSVH6Ojo4Onpibu7O+np6WrH0VpSyEJkw7x582jfvj3P\nnj3Lui02NpYyZcqomOrjtGrVihIlSuDt7a12FK0lhSzEB4qJiWHLli0sXryYiIgIbt++zevXr9m+\nfbtGXK4pu3R0dJgzZw6zZs3izZs3asfRSlLIQnygb7/9liFDhmBtbc3y5cuz9kHu1q0bVatWVTve\nR2natCnly5fn559/pmfPnjg7OxMWFoaNjQ0//fST2vEKPDlST4gPcPv2bZycnAgLC8PCwkLtOLni\nt99+o0ePHoSHh2NoaKh2HK0iE7IQH2D27Nl8/fXXBbaMAZydnalWrRrr1q1TO4rWkQlZiPcUHh5O\n48aNiYiIoFixYmrHyVVXrlzB1dWVyMhIChcurHYcrSETshDvycPDg/Hjxxf4MgaoW7cuDRo0YNWq\nVWpH0SoyIQvxHm7evEmLFi2IiorC1NRU7Th54saNG7Rs2VKrnrPaZEIW4j14eHgwefJkrSqm6tWr\n4+LiwrJly9SOojVkQhbiXwQFBdGhQwciIiIwNjZWO06eCg0NpUmTJkRGRlK0aFG14xR4MiEL8S9m\nzpzJtGnTtK6MASpXrky7du1YsmSJ2lG0gkzIQvwDf39/unXrRkREhNbukxsVFUWDBg0IDw+Xs7/l\nMpmQhfgHM2fOZMaMGVpbxgAVK1bkq6++4vvvv1c7SoEnE7IQf+PMmTMMGDCA0NBQ9PX11Y6jqnv3\n7lG7dm1CQkIoWbKk2nEKLClkId5BURSaNWvGwIED+c9//qN2HI0wevRoDAwMWLRokdpRCiwpZCHe\nwdfXl1GjRnHz5k309PTUjqMRHj58SNWqVbl58ybW1tZqxymQpJCF+BNFUXB2dmbcuHH06NFD7Tga\nZeLEiaSlpbF8+XK1oxRIUshC/Mnhw4eZOnUq165do1Ah+dz7jx4/foyjoyOBgYFZl64SOUe+24T4\nA0VRcHNzY/bs2VLG71CyZEmGDRvGnDlz1I5SIMl3nBB/sHfvXnR0dOjYsaPaUTTWpEmT2Lt3L1FR\nUWpHKXBkk4UQ/5ORkUHNmjX57rvvaN++vdpxNNqsWbOIjo5m48aNakcpUGRCFuJ/du7ciZmZGe3a\ntVM7isYbN24cR44cITQ0VO0oBYpMyEIA6enpVK1alRUrVtCyZUu14+QL8+fP5+rVq2zfvl3tKAWG\nTMhCAFu3bqV06dK0aNFC7Sj5xqhRozh16hTXr19XO0qBIROy0Hpv3rzBwcGBjRs30qRJE7Xj5CtL\nlizhzJkz7N27V+0oBYJMyELrbdiwATs7OynjbBg+fDgBAQFcuXJF7SgFgkzIQqulpqZib2/Prl27\naNCggdpx8qUVK1Zw+PBhjhw5onaUfE8mZKHV1q5dS82aNaWMP8LgwYMJDg7mt99+UztKvicTstBa\nr169ws7OjsOHD1O7dm214+Rr69atY/v27fj6+qodJV+TCVlorZUrV9KoUSMp4xzwn//8hzt37nDq\n1Cm1o+RrMiELrfTy5Uvs7Ozw8/OjatWqascpEDZv3syaNWs4c+YMOjo6asfJl2RCFlpp2bJltGzZ\nUso4B/Xq1YunT59y/PhxtaPkWzIhC62TkJBApUqVOH/+PPb29mrHKVB27tzJ999/z8WLF2VKzgaZ\nkIXWWbJkCV988YWUcS7o0qULaWlpHDp0SO0o+ZJMyEKrxMfH4+DgQEBAAOXLl1c7ToG0b98+PDw8\nCAwMlHNKfyB5tYRWWbhwIV26dJEyzkVffvklenp67NmzR+0o+Y5MyEJrPHr0iCpVqnDt2jVsbGzU\njlOgHT16lEmTJnH9+nV0dXXVjpNvyIQstMb8+fPp06ePlHEe+PzzzylWrJicmvMDyYQstML9+/ep\nUaMGwcHBWFlZqR1HK/j5+TFs2DBCQkLQ09NTO06+IBOy0ArffvstgwYNkjLOQ82bN8fGxoZNmzap\nHSXfkAlZFHh3796lTp06hIWFYWlpqXYcrXLu3Dn69u1LWFgYBgYGasfReDIhiwJr8ODBJCYm4unp\nyciRI6WMVfDpp5/i4ODA+vXrOXjwIB4eHmpH0mhSyKLAOnbsGNeuXWP//v1MmDBB7ThaKTk5GU9P\nT+bMmcODBw+4d++e2pE0mmyyEAVW6dKladSoEY6OjsTExFC2bFk8PT3VjqVVnJ2dcXJyIjo6mqJF\ni6Knp8fGjRvVjqWxZEIWBdabN2/w9fVl+/btGBgYMHXqVLUjaZ0jR47w4MEDIiIi2L9/P2lpaWpH\n0mgyIYsCy9DQEF1dXdavX0+PHj3UjqO1FEXBy8uLr7/+mho1ahAUFKR2JI0lOweKAqt169bMmzeP\natWqqR1Fq+no6DB8+HDs7e0JCwtTO45GkwlZCCE0hEzIIt9JS0vjzp07xMTEkJGR8dbXdHR0sLKy\nokKFCpiamqqUULxLUlISjx494vHjxyQmJv7t/fT19SlZsiSlSpXCwsJCq84YJ4Us8oXdu3ezbNky\nIiMjefLkCaVLl8bKyuovh+RmZmby5MkTYmNjMTU1pUKFCnTv3p0xY8bI4bt57MyZM2zatInz589z\n9+5dMjMzsbS0xMLCAlNT0789gX1aWhrPnz/n6dOnJCcnY2lpSZ06dWjVqhUjR44s0AeYyCYLofEO\nHjzIiBEjGD9+PJUqVaJUqVL/Wq6ZmZnEx8dz9+5dVq9ejaurK7NmzcqjxCIkJITGjRszYMAAateu\nTdmyZTE2Nv7gq4i8efOGJ0+eEBwczC+//EKzZs34/vvvcym1+qSQhcbr1KkTtWrVokOHDtl6fFRU\nFJMnT+bOnTs5G0z8LTc3N2JiYhg9enSOLfP+/fsMHjyYx48f59gyNY32bJwR+VZISMhHXW7J1taW\nuLg4UlJScjCV+CfBwcFUqlQpR5dpbW1NSkoKz58/z9HlahIpZKHR0tPTuXv3LmXLls32MvT09Chb\ntqzscpWHQkJCcvyqLDo6OpQvX56QkJAcXa4mkUIWGu3u3btYWFhgZGT0UcspV64c4eHhOZRK/BNF\nUYiOjsbW1jbHl21ra1ug30f52FlotLS0NAoXLvzWbQ8ePGDMmDHUqlWL69evU6JECRYtWsTdu3eZ\nN28eqamp2NjYMHPmTIoUKQL8ftReamqqGk9BK71+/Trrl+jq1aspUqQIvXr1AmDFihUUL14869D2\n169f4+LiwrBhw0hJSWHq1Kk8fvyYjIwMBg8eTOvWrbOWa2hoWKAPv5YJWeRLMTExdO3alZ07d2Jm\nZoafnx/u7u6MHj2a7du3Y2dnx9q1a9WOKQBXV1cOHz4M/L73y/Hjx7GwsCAmJoaNGzfi7e1NSEgI\ngYGBXLhwgRIlSrBt2zZ27txJo0aNVE6ft6SQRb5kbW2Ng4MDAJUrVyY2NpaXL19St25dADp06EBg\nYKCaEcX/WFtbU7RoUUJDQ/H398fBwYFbt27h7+9P79696dOnD3fu3OHevXvY2dlx8eJFfvzxR4KC\ngrTu4B7ZZCE03rv2zNTX18/6u66uLi9fvszLSOI9KIqStd9xx44dOXToEPHx8bi6uhIQEED//v3p\n3LnzXx63ZcsWzp8/z6pVq3BycmLIkCF5HV01MiELjWZhYcHTp0/fWcp/ZGpqSpEiRbLOJHb48GHq\n1KmT9fX4+HhKlCiRq1nF73R0dDA3N+fZs2dZt7m4uHDhwgVu3bqFs7Mzzs7OHDhwgFevXgHw+PFj\nnj17xpMnTzAyMqJdu3b07duX0NDQt5YdHx9foK/8IhOy0GglS5ZER0eHZ8+eYWFh8Y/39fDwyPpQ\nr0yZMri7u2d97fbt2zg6OuZ2XPE/Dg4O3L59O+s909fXp169epiZmaGrq0vDhg25ffs2AwYMAMDY\n2BhPT09iYmJYunQphQoVQk9P7y/nsC7o76McqSc0XsOGDRkwYAD16tXL1uOTkpJo27YtSUlJWnWi\nGjUNGjSIkiVL0qVLF+D3D/P69OnD/Pnzs71PeVpaGs2bNycxMbHAns9CvjuFxqtTpw4XL17M9uP9\n/f2pXr26lHEeqlu3Lv7+/ln7JHfq1AknJ6ePOsAnICAAe3v7AlvGIBOyyAdiY2NxdnamXLlyVKxY\nkTJlymBjY4OVldVbH+7B22d7i42NJSYmhoCAAPbt20eTJk1UegbaJyUlBWdnZ5KSkqhZsyaffPIJ\n5ubmWFhYULx4cczMzP7xbG/Pnj3L+vPkyRNCQkIICQlh165dtGrVKo+fTd6RQhb5QnJyMocOHSIi\nIoKoqCgiIyP/8XzIFStWxM7OjooVK/L5559jZWWlUnLtlZ6ezrVr17hw4QLR0dHExcVlnQ/5xYsX\nf/s4Q0NDSpQoQalSpbCysqJ06dLUq1ePRo0aYW5unofPIO9JIQshhIaQjWpCCKEhpJCFEEJDSCEL\nIYSG+D93FG79Ihj/DQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c0df9716a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "myTree = retrieveTree(0)\n",
    "createPlot(myTree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n58f9+/extbWlZcuWUozfQEdHJ6ctZ1RUFEePHmXJkiVKxxJaQqYsRK4ZGxtz+/btnEul586dy/37\n95WOpTGys7P56quv6Ny5MwEBAdy4cQMzMzOlYwktIgVZ5JqtrS03b94kLi6ONWvWcODAAUqUKKF0\nLI2hp6eHnp4evXv3pnbt2pw6dYoyZcooHUtoESnIItdsbW25du0aBgYGqFQq9u7di7GxsdKxNMq8\nefPo378/V65cISwsTAqyeCsyhyxyzdbWluTkZNq2bcu6devQ09NTOpLG0dHRYfz48VhYWDB8+PAi\n2wFP5I2sshBvZdmyZQwZMkSWu+XCvn37aN68uayyELkmBVkIITSE/D4lcmRlZREbG0t0dDQZGRl/\n+7q1tTUVK1bEwsJCgXTaIz09nQcPHnD//n0eP378jxeJ6OrqYm1tTalSpShVqhTFihUr5KRC00hB\nLuJOnjzJzJkziYiIICEhAWtra+zs7DA0NHxtO7VazePHj4mNjaVYsWJUqFCB1q1bM3nyZExNTRVK\nrxmioqL4+eefCQ4OJiIigmfPnmFpaYmVlRXm5ub/ONeenZ1NUlISiYmJJCUlYWZmRrVq1WjcuDE+\nPj6ULl26kB+JUJpMWRRhV65coUmTJvj4+FC9enXKlCmDgYHBv95HrVaTlJREbGwsa9euxcbGhs2b\nNxdSYs2TlpZGtWrVaNiwIQ0bNsTZ2ZkSJUqgq/t2C5heFecbN24QFBREbGwsp0+ffuv9CO0mBbkI\n+/rrr7l//z4jR47M0/3T0tJo2bIlT548KbInroKCghg9enS+tt1UqVR07dqVw4cPU6VKlXzbr9B8\n8vZbhF29epXKlSvn+f5GRkbY29tz8+bNfEylXa5du5bvH1+lq6uLs7Mz165dy9f9Cs0nBbkIu3bt\nGo6Oju+0jwoVKhTpwnH16lXKly+f7/stX7484eHh+b5fodmkIBdRKpWK6OhoypUr9077KVu2LBER\nEfmUSvtEREQUSEEuV65ckX5eiypZZVFEqVQqVCrVayfxEhISGDVqFLVq1eLSpUvY2NiwYMECYmJi\nmD17NmlpaTg4ODB16tScHhaGhoakpaUp9TAUl56e/tr8+ZIlSyhRogR9+/YFYPHixVhaWpKZmcnh\nw4fJyMigefPmDB8+nBcvXjBx4kQePHhAdnY2Q4YM4cMPPwReTgcV5ee1qJIRsnhNbGwsPXv2JCAg\nADMzM4KCgpg2bRpffPEFmzZtwtnZmWXLlikdU2N16tSJwMBA4OWb3sGDB7GysiI2NpbVq1ezYcMG\nrl27xvnz5wkJCcHGxoaNGzcSEBCAl5eXwumF0qQgi9fY2dnh4uICQJUqVYiLiyMlJYU6deoA0KFD\nB86fP69kRI1mZ2eHubk5169fJywsDBcXF8LDwwkLC6Nfv358/PHHREdHc+fOHZydnTl9+jSLFi3i\nwoULRX49t5ApiyLtTSse//dqMT09PVJSUgozklb66/PYpUsX9uzZw6NHj+jUqRNnz55l4MCBdO/e\n/W/3XbduHcHBwfz222/Uq1ePoUOHFlZsoYFkhFxE6enpYWpqSlJS0r9uZ2pqSokSJbhw4QIAgYGB\nuLu753z98ePHlCpVqkCzajJra2seP3782m3NmzcnJCSE8PBwPD098fT05Pfff+f58+cAPHjwgMeP\nH/Pw4UOMjIxo164d/fv35/r16zn7SExMlE9kKYJkhFxE6ejo4OLiQlRUFLVr1/7XbX19fXNO6tnb\n2zNt2rScr8XExDB48OCCjquxqlWrRlRU1Gu3FStWjLp162JmZoaenh4eHh5ERUUxaNAgAIoXL870\n6dOJjY1l4cKF6Orqoq+vz8SJE3P2ERMTQ8uWLQv1sQjlSUEuwqpWrfpaQbazsyMgICDn6/3798/5\n96pVq964j8jISFxdXQs0pyarWrUqa9eufe02lUrFlStXmDNnTs5tffr0oU+fPq9t5+DggKen5xv3\nGxMTU6Sf16JKpiyKsDp16nD69Ok8f2T9zZs3yc7OxsHBIZ+TaY/atWtz8eLFnOmIyMhIunbtSr16\n9fK8xjsxMZHbt2/j5uaWn1GFFpBeFkXY8+fP8fLyQkdHh2rVqmFvb5/z55+6vcXFxREXF0dCQgIn\nT55k4cKFr42ki6IRI0awfft26tSpg5OTE5aWljl/LCws/rXb25MnT3j06BGPHz/m0aNH3Lp1i/Pn\nz+Pj4/Pa1JAoGqQgF3FZWVns3buX69evc+vWLW7fvv2f/ZCdnZ1xdnamWbNm+d7HQRup1Wpu3bpF\ncHAw165d4/79+9y7dy+nH7JKpXrj/fT09HL6Idva2mJra0v16tXx8vIqkKv/hOaTgiyEEBpC5pCF\nEEJDSEEWQggNIQVZCCE0xP8DSVARNrVxur0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c0de7fe908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "myTree['no surfacing'][2] = 'maybe'\n",
    "createPlot(myTree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def classify(inputTree , featLabels,testVec):\n",
    "    firstStr = list(inputTree.keys())[0]\n",
    "    secondDict = inputTree[firstStr]\n",
    "    featIndex = featLabels.index(firstStr)\n",
    "    for key in secondDict.keys():\n",
    "        if testVec[featIndex] == key:\n",
    "            if type(secondDict[key]).__name__ == 'dict':\n",
    "                classLabel = classify(secondDict[key],\n",
    "                                     featLabels,\n",
    "                                     testVec)\n",
    "            else :\n",
    "                classLabel = secondDict[key]\n",
    "    return classLabel"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([[1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']],\n",
       " ['no surfacing', 'flippers'])"
      ]
     },
     "execution_count": 182,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myData , labels = creatDataSet()\n",
    "myData , labels "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'no surfacing': {0: 'no', 1: {'flippers': {0: 'no', 1: 'yes'}}}}"
      ]
     },
     "execution_count": 183,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "myTree = retrieveTree(0)\n",
    "myTree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'yes'"
      ]
     },
     "execution_count": 184,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "classify(myTree,labels,[1,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'age': {'pre': {'prescript': {'hyper': {'astigmatic': {'no': {'tearRate': {'normal': 'soft',\n",
       "        'reduced': 'no lenses'}},\n",
       "      'yes': 'no lenses'}},\n",
       "    'myope': {'astigmatic': {'no': {'tearRate': {'normal': 'soft',\n",
       "        'reduced': 'no lenses'}},\n",
       "      'yes': {'tearRate': {'normal': 'hard', 'reduced': 'no lenses'}}}}}},\n",
       "  'presbyopic': {'prescript': {'hyper': {'astigmatic': {'no': {'tearRate': {'normal': 'soft',\n",
       "        'reduced': 'no lenses'}},\n",
       "      'yes': 'no lenses'}},\n",
       "    'myope': {'astigmatic': {'no': 'no lenses',\n",
       "      'yes': {'tearRate': {'normal': 'hard', 'reduced': 'no lenses'}}}}}},\n",
       "  'young': {'tearRate': {'hard': 'hard',\n",
       "    'no lenses': 'no lenses',\n",
       "    'soft': 'soft'}}}}"
      ]
     },
     "execution_count": 185,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fr = open('lenses.txt')\n",
    "lenses = [inst.strip().split('\\t') for inst  in fr.readlines()]\n",
    "lensesLabels = ['age','prescript','astigmatic','tearRate']\n",
    "lensesTree  = creatTree(lenses , lensesLabels)\n",
    "lensesTree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nxin/D+E58nafVfDLAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1c0de7ccd68>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "createPlot(lensesTree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
